查看原文
其他

CASS如何输出地方标准数据库文件?

南方数码虎妞 南方数码生态圈 2021-05-11

本文章为南方数码生态圈原创文章,受知识产权保护,如转发请在文章开头注明来源“南方数码生态圈”

开工第一天,就遇到生态圈的小伙伴咨询:请问CASS10.1数据库模板是国标的,如何修改自定义为地方标准?


CASS输出的数据库文件,参考国标数据字典。并不完全符合所有的地方数据建库标准,但支持用户自定义入库方案。所以CASS使用达人们,跟着我来学习一下如何自定义入库方案,入库只是听起来很复杂,其实很简单。


一、分析数据建库标准

数据建库标准,是整套入库方案的参考依据,一般内容很多,重点关注以下三个部分的内容。


1、空间要素分层

这个表主要描述空间要素的分层情况,包括层名、属性表名、几何特征等。

空间要素分层表截图


2、空间要素属性结构

该表主要描述每个属性表中的字段名称、字段代码、字段类型等。

空间要素属性表截图


3、数据库属性要素编码表

该表主要描述每个空间要素,输出的代码和属性表名。

要素编码表截图


分析数据入库标准,主要为了获取三个重要的信息。弄清楚之后,就可以对应修改CASS中相关配置文件了。


  • 空间要素如何分层。

  • 每个属性表都有哪些属性字段。

  • 每个空间要素要以什么代码,输出到哪个属性表。


二、编辑Attributetable

CASS10.1将大部分配置文件集成到了cassconfig.db中,所以先安装SQLite Expert Professional,然后查看和编辑cass\system\cassconfig.db。打开Attributetable表,找到上述步骤中分析的“空间要素分层”,将此表进行更新。

Attributetable结构截图


1、文件格式说明

CASS10.1中地物要素导出SHP、PDB时的表结构是通过Attributetabl文件来定义的。其中表类型,如下表所示。表名一般为英文名。表说明为属性表中文名称。

1
2345
9

线
注记
复合
扩展

数据表类型对应表


2、编写实例

前文所述的测量控制点和测量控制点注记,按文件格式应编写为:

控制点要素分层标准


属性表编写实例


三、编辑Attributefield

CASS10.1中地物要素导出SHP、PDB时的属性字段配置,是通过Attributefield来定义的。下图为文件格式说明。

Attributefield文件结构截图


1、文件格式说明

数据类型(type)中,数值尾数的代表的意思。比如数据类型10,就代表是字符型。

  • 0——字符串 (一个汉字等于两个字符)

  • 1——短整数 (数字的取值是整数,且在±26000之间)

  • 2——长整数 (数字的取值是整数,比短整数的长度要长)

  • 3——浮点数 (含整数位和小数位)

  • 4——时间


2、编写实例

结合前文所述实例,编写下表所示的标识码,要素代码等字段。

属性结构表实例截图


属性字段编写实例


四、编辑indexini

CASS10.1中地物要素导出SHP、PDB时的入库编码和属性字段配置,是通过indexini来定义的。下图为文件格式说明。

indexini文件结构截图


1、文件结构说明

图元定义文件indexini(存放路径CASS\system\cassconfig.db),文件结构如下

CASS编码,主参数,附属参数,图元说明,用户编码,GIS表名


PS:和入库相关的字段,只有“用户编码”和“GIS表名”

用户编码对应上述要素编码表中的“要素代码”

GIS表名对应上述要素编码表中的“要素图层名”


2、编写实例

根据上述文件,将indexini文件中的每个要素编码,匹配上对应的输出代码和属性表名,即可完成入库要素的定义。

编码表实例截图


编码表编写实例截图


PS:参考地方数据建库标准,修改此文件。标准里有的要素,这个表里都要有,大约1500+。工作量比较大。


五、测试入库方案

为每个空间要素,定义了入库图层、属性字段和编码之后。我们可以来测试一下入库方案。


1、打开测试图形

点击菜单“文件-打开已有图形”,选择测试图形


2、输出测试图形的数据库文件

点击菜单“检查入库-输出ARC/Info SHP格式”或者“检查入库-输出ARCGIS10 MDB格式”。如发现部分要素不能输出的,需要检查上述三个表中是否存在错误。


碎碎念:看起来很复杂的入库,可以轻松化解为下图几个步骤。总结起来就是解析三个表,编写三个文件。遇到类似的业务,你也可以试试了。


这个方法,适用于CASS10.0以上版本。

自定义入库方案步骤图


PS:注意步骤1、2中的子步骤的对应关系。根据空间要素分层表,编写Attributetable文件。根据空间要素属性结构表,编写Attributefield文件。根据数据库属性要素编码表,编写indexini文件。


供稿 | 南方数码虎妞

整理 编辑 | ELLEN




地信行业资源连接与合作平台

GIS Resource&Cooperation Platform



【生态圈交流平台】社群已开放

QQ-4群:897741522

欢迎加入 与行业大咖在线交流


已在1-3群的不要跨群

如若群满,敬请期待下一次开群。


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存